home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_07_03
/
v7n3103a.txt
< prev
next >
Wrap
Text File
|
1989-03-15
|
1KB
|
85 lines
/* a nasty kludge to get end of line markers */
void putcr(int c)
{
switch (c){
case '\n': putchar(0x0d);
putchar(0x0a);
break;
case 0x0d: break;
default: putchar(c);
}
}
int next_token(void)
{
do {
switch (lex_val=getchar()){
case '-': return cap;
case ' ': return space;
case 0x0a: lex_val = '\n';
return nl;
case 0x0d: break;
/*avoids 0d 0d 0a output */
case EOF: lex_val = 0x1a;
return fend;
default: if (toupper(lex_val) == lex_val) return cap;
else return other;
}
} while (lex_val == 0x0d);
return forbid;
}
void skip(void)
{ return; }
void echo(void)
{
#ifdef DEBUG
if ((lex_val < ' ') || (lex_val > 'z')) putchar ('.');
else putchar(lex_val);
printf(" %2.2x",lex_val);
#endif
putcr(lex_val );
count = 0;
}
void tally(void)
{
count += 1;
}
void markg(void)
{
putcr('\n' );
putchar(lex_val );
count = 0;
}
void smarkg(void)
{
putcr('\n' );
while(count--) putchar(' ' );
putchar(lex_val );
count = 0;
}
void zero(void)
{
count = 0;
}
void secho(void)
{
putchar(' ' );
putcr(lex_val );
#ifdef DEBUG
printf(" %x", lex_val);
#endif
count = 0;
}